﻿using BCEntity.Sim.Admin.AdminSpecificPermission;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;

namespace BCData.Sim.Admin.AdminSpecificPermission
{
    /// <summary>
    /// 管理员特殊权限数据操作
    /// </summary>
    public interface IAdminSpecificPermissionData
    {
        /// <summary>
        /// 检查管理员特殊权限是否存在
        /// </summary>
        /// <param name="adminSpecificPermissionId">管理员特殊权限Id</param>
        /// <returns></returns>
        Task<bool> CheckExists(int adminSpecificPermissionId);
        /// <summary>
        /// 检查管理员特殊权限是否存在
        /// </summary>
        /// <param name="extensionPermissionKey">特殊权限Key</param>
        /// <returns></returns>
        Task<bool> CheckExists(string extensionPermissionKey);
        /// <summary>
        /// 获取管理员特殊权限
        /// </summary>
        /// <param name="adminSpecificPermissionId">管理员特殊权限Id</param>
        /// <returns></returns>
        Task<AdminSpecificPermissionEntity> Get(int adminSpecificPermissionId);
        /// <summary>
        /// 获取管理员特殊权限
        /// </summary>
        /// <param name="extensionPermissionKey">特殊权限Key</param>
        /// <returns></returns>
        Task<AdminSpecificPermissionEntity> Get(string extensionPermissionKey);
        /// <summary>
        /// 获取管理员特殊权限列表
        /// </summary>
        /// <returns></returns>
        Task<IEnumerable<AdminSpecificPermissionEntity>> Query();
    }
}
